package CreationPattern.FactoryMethod;

/**
 * @Classname : MobilePhone
 * @Description : 产品类（手机）
 * @Author : chentianyu
 * @Date 2022/12/30 23:46
 */


/**
 * 手机产品接口
 */
public interface PhoneProduct {

    void run();  // 手机运行

}


/**
 * 华为手机产品
 */
class HUAWEI implements PhoneProduct {

    // 由于类访问属性是default，则默认的构造器访问属性也是default
    // 如果需要被其他包访问，则需要显式创建public无参构造器
    // public HUAWEI() {}

    public void run(){
        System.out.println("华为手机在运行！");
    }

}


/**
 * 小米手机产品
 */
class XIAOMI implements PhoneProduct {

    public void run(){
        System.out.println("小米手机在运行！");
    }

}


/**
 * 手机产品枚举
 */
enum PhoneProductEnum {
    // 华为手机产品
    HUAWEI(1, "HUAWEI"),
    // 小米手机产品
    XIAOMI(2, "XIAOMI");


    private Integer code;
    private String name;
    PhoneProductEnum(Integer code, String name) {
        this.code = code;
        this.name = name;
    }

    public Integer getCode() {
        return code;
    }

    public String getName() {
        return name;
    }
}
